import common from './constants.js'
import LoginApi from "@/api/login";
import dd from 'dingtalk-jsapi'

/**
 * 判断当前路径是否为登录页
 * @param {Object} path
 */
export function isLoginPage(path){
	if (path==common.LoginPage || path==common.DdLoginPage || path==common.WxLoginPage || path==common.PlatformLoginPage){
		return true;
	}
	return false;
}
/**
 * 跳转到登录页面，增加租户ID参数, Elwin ZHANG 2021-4-13
 */
export function getLoginUrl(fullPath) {
	let fromUrl=getQueryString("fromUrl");
	let loginBase=getUrlBase();
	//如果自带fromUrl则传递该参数
	if(fromUrl){
		return loginBase + "?fromUrl=" + fromUrl;
	}
	//把当前地址当作参数
	// #ifdef H5
	if(fullPath){
	 return loginBase+ "?fromUrl=" +encodeURIComponent(fullPath);
	}
	//  #endif
	 return loginBase;

}

/**
 * 登录后绑定到企业微信
 */
export function loginBindEntWx(fromUrl){
	//绑定到企业微信
	//先从后台获取企业微信授权访问地址
	let tenantId=uni.getStorageSync(common.TenantId);
	let url=common.Wx_Redirect_Url;
	if(fromUrl && fromUrl.startsWith('/?tenantId=')){
		fromUrl='';
	}
	if(fromUrl){
		url += "?fromUrl=" +encodeURIComponent(fromUrl);
	}
	var params ={
		tenantId:tenantId,
		redirectUrl:url
	}
	LoginApi.getWxAuthorizeUrl(params).then(res => {
		//返回成功，则跳转到URL
		if(res.success && res.data){
			// #ifdef H5
				   window.location.href=res.data
			//  #endif
		}
	})
}
/**
 * 登录后绑定到钉钉
 */
var corpId; //定义在内部有时会读不到值，改到外面试下居然可以；
export function loginBindDd(routePage,tenantId){
	let params={tenantId:tenantId};
    console.log("--222---getPlatformAuthUrl---登录后绑定到钉钉--读取钉钉配置信息-params="+JSON.stringify(params));
	LoginApi.getDdCorpId(params).then(res => {
        console.log("--222---getPlatformAuthUrl---定义在内部有时会读不到值-res="+JSON.stringify(res));
		corpId=res.data;
		dd.ready(function() {
			dd.runtime.permission.requestAuthCode({
				corpId: corpId, // 企业id
				onSuccess: function (info) {
                    console.log("--222---getPlatformAuthUrl---dd.ready-dd.runtime.permission.requestAuthCode-info=-"+JSON.stringify(info));
					let url=common.PlatformLoginPage + "?code=" +info.code;
					if(routePage){
						url=routePage + "?code=" +info.code;
					}
					uni.navigateTo({
						url:url
					});
				},onFail: function(err) {
                    console.log("--222---getPlatformAuthUrl---requestAuthCode接口失败-");
					 alert('requestAuthCode接口失败: (corpId:' + corpId + ')' + JSON.stringify(err));
				}
			});
		});
	});
}

/**
 * 登陆类型：1微信公众号，2企业微信，3钉钉，4飞书，5钉钉扫码登陆
 */
export function loginTypeMap(){
	let loginType = {
		ENTWX:2,
		DD:3,//登顶内置应用登陆
		FS:4,
	}
	return loginType;
}

/**
 * 从URL中找到某个参数的值, Elwin ZHANG 2021-4-13
 * @param {Object} param 参数
 */
function getQueryString(param)
{
	let query ='';
	//  #ifdef H5
	   query = window.location.search.substring(1);
	//  #endif
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
	   var pair = vars[i].split("=");
	   if(pair[0] == param){return pair[1];}
    }
	return null;
}

/**
 * 根据应用类型，匹配不同的登录页
 */
function getUrlBase() {
	if(common.AppType==common.TypeEntWx){
		return common.PlatformLoginPage;
	}
	if(common.AppType==common.TypeDd){
		return common.PlatformLoginPage;
	}
	if(common.AppType==common.TypeFs){
		return common.PlatformLoginPage;
	}
	return  common.LoginPage;
}
